package algorytmy.numeryczne;

import java.util.ArrayList;
/**Klasa FunkcjaZp dziedziczy po klasie Funkcja
 * Obiekt <code>FunkcjaZp<code> reprezentuje funkcje
 * z jawnie podaną pochodną
 * @author Piotrek
 *
 */
public class FunkcjaZp extends Funkcja {
	/**
	 * Wzór pochodnej funkcji zapisany w ciagu string
	 */
	String pochodna;
	public  FunkcjaZp(String funkcja,String pochodna){
		super(funkcja);
		this.pochodna=pochodna;
	}
	/**
	 * Wylicza wartosc pochodnej funkcji w konrektym punkcie
	 * @param x punkt dla, ktorego ma byc wyliczona wartosc pochodnej funkcji
	 * @return wyliczona wartosc pochodnej funkcji.
	 */
	public Double wartoscPochodnej(double x){
		Double wynik;
		ArrayList<String> tab = przesiewPierwszy(getArrayString(pochodna));
		if (tab == null){
			System.out.println("Znalazlem literówke");
			wynik=null;
		}
		else
		try{
		try {
			return obliczWyrażenie(x, transelt(getArrayString(pochodna)));
		} catch (OperatoryEx e) {
			e.toString();
			return null;
		}
		}catch(NawiasyEx e){
			System.out.println();
			return null;
		}
		return wynik;
	}
	
}
